package com.mzkj.wanjulaile.mobile.api.modules.coupon.service;

import com.mzkj.common.utils.StringUtils;
import com.mzkj.wanjulaile.mobile.api.modules.account.mapper.BuyVipMapper;
import com.mzkj.wanjulaile.mobile.api.modules.coupon.entity.Invite;
import com.mzkj.wanjulaile.mobile.api.modules.coupon.mapper.AccountCouponMapper;
import com.mzkj.wanjulaile.mobile.api.modules.coupon.mapper.CouponMapper;
import com.mzkj.wanjulaile.mobile.api.modules.coupon.mapper.InviteMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 邀请记录Service
 * @author hgw
 * @version 2016-11-29
 */
@Service
@Transactional(readOnly = true)
public class InviteServiceImpl  implements InviteService{
	@Autowired
	private CouponMapper couponMapper;
	@Autowired
	private AccountCouponMapper accountCouponMapper;
	@Autowired
	private BuyVipMapper buyVipMapper;
	@Autowired
	private  InviteMapper inviteMapper;

	public Invite get(String id) {
		return inviteMapper.get(id);
	}
	
	public List<Invite> findList(Invite invite) {
		return inviteMapper.findList(invite);
	}
	
	@Transactional(readOnly = false)
	public void save(Invite invite) {
		if (StringUtils.isBlank(invite.getId())){
			invite.setIsNewRecord(true);
			invite.preInsert();
			inviteMapper.insert(invite);
		}else{
			invite.preUpdate();
			inviteMapper.update(invite);
		}
	}
	
	public Invite getByAccountId(Invite invite){
		return inviteMapper.getByAccountId(invite);
	}

	@Transactional(readOnly = false)
	public void updateBy(Invite invite){
		inviteMapper.updateBy(invite);
	}

//	/**
//	 *  是否通过分享成功注册会员
//	 * @param account1 被分享人的账号
//     */
//	@Transactional(readOnly = false)
//	public void registerByShare(Account account1, int type){
//		BuyVip buyVip=new BuyVip();
//        buyVip.setAccount(account1);
//		//是否存在购买过月度及月度会员以上的记录
//		List<BuyVip> list=buyVipMapper.isExistBuy(buyVip);
//		if(list.size()<=1){
//			Invite invite=new Invite();
//			invite.setBeInvitd(account1);
//			Invite invite1=dao.getByAccountId(invite);
//			if(invite1!=null){
//				if(invite1.getInvitedAccount()!=null&&!StringUtils.isEmpty(invite1.getInvitedAccount().getId())){
//					//给分享人发放运费抵用券
//					int faceValue=0;
////					String vipType=String.valueOf(type);
//					if(type== Constant.MONTH_VIP){
//						faceValue= Coupon.FREIGHT_FEE_MONTH;
//					}else if(type==Constant.QUARTER_VIP){
//						faceValue=Coupon.FREIGHT_FEE_AUARTER;
//					}else if(type==Constant.YEAR_VIP){
//						faceValue=Coupon.FREIGHT_FEE_YEAR;
//					}
//					if(faceValue>0){
//						int mod=faceValue%2000;
//						int count=faceValue/2000;
//						Coupon coupon=new Coupon();
//						coupon.setCouponType(Coupon.COUPON_TYPE_FREIGHT);//运费抵用券
//						coupon.setFaceValue("2000");
//						Coupon coupon1=couponMapper.getCouponByFaceValue(coupon);
//						coupon.setFaceValue("1000");
//						Coupon coupon2=couponMapper.getCouponByFaceValue(coupon);
//						Date date=new Date();
//						Account account=invite1.getInvitedAccount();
//						if(mod!=0){
//							AccountCoupon accountCoupon=new AccountCoupon();
//							accountCoupon.setCoupon(coupon2);
//							accountCoupon.setCount(1);
//							accountCoupon.setCreateDate(date);
//							accountCoupon.setUpdateDate(date);
//							if(!StringUtils.isEmpty(coupon2.getPeriodValidity())){
//								accountCoupon.setExpireDate(new Date(date.getTime()+Integer.valueOf(coupon1.getPeriodValidity()) * 24 * 60 * 60 * 1000));
//							}
//							accountCouponMapper.insert(accountCoupon);
//						}
//						AccountCoupon accountCoupon1=new AccountCoupon();
//						accountCoupon1.setCoupon(coupon1);
//						accountCoupon1.setCount(count);
//						accountCoupon1.setCreateDate(date);
//						accountCoupon1.setUpdateDate(date);
//						if(!StringUtils.isEmpty(coupon1.getPeriodValidity())){
//							accountCoupon1.setExpireDate(new Date(date.getTime()+Integer.valueOf(coupon1.getPeriodValidity()) * 24 * 60 * 60 * 1000));
//						}
//						accountCouponMapper.insert(accountCoupon1);
//					}
//				}
//			}
//		}
//	}

//	@Transactional
//	public void newRegisterByShare(Account account) {
//		//体验会员以上的给邀请人发运费券
//		if (account.getVipType()>Constant.TEMP_STAR_VIP){
//			Invite invite=new Invite();
//			invite.setBeInvitd(account);
//			Invite invite1=inviteMapper.getByAccountId(invite);
//			if(invite1!=null){
//				if(invite1.getInvitedAccount()!=null&&!StringUtils.isEmpty(invite1.getInvitedAccount().getId())){
//					//给分享人发券
//					Coupon coupon = new Coupon();
//					coupon.setCouponType(Coupon.COUPON_TYPE_FREIGHT);
//					coupon.setFaceValue("2000");
//					coupon = couponMapper.get20ShipCoupon(coupon);
//					Date date = new Date();
//					Account sharedAccount=invite1.getInvitedAccount();
//					AccountCoupon accountCoupon=new AccountCoupon();
//					accountCoupon.setAccount(sharedAccount);
//					accountCoupon.setCoupon(coupon);
//					//发五张
//					accountCoupon.setCount(5);
//					accountCoupon.setCreateDate(date);
//					accountCoupon.setUpdateDate(date);
//					if(null != coupon && !StringUtils.isEmpty(coupon.getPeriodValidity())){
//						accountCoupon.setExpireDate(DateUtils.addDays(new Date(),Integer.valueOf(coupon.getPeriodValidity())));
//					}
//					accountCouponMapper.insert(accountCoupon);
//				}
//			}
//		}
//	}
}